NTUST OAI-CORD scenario for CiaB 4.1 & 5.0

OAI eNB functional split with stable OAI EPC

Outcome

Preparation

Server Spec

Before starting the Cord-in-a-Box installation, be sure that your server fit the following requirement

  • 64-bit AMD64/x86-64 server
  • 96 GB+ RAM
  • 16+ CPU cores
  • 2 TB+ disk
  • Access to internet
  • ubuntu 16.04 / 14.04 with fresh update
  • sudo less

Setup sudo without password

use sudo visudo to edit the following configuration

Note: ==ubuntu== change to your user name

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# User privilege specification
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

ubuntu ALL=(ALL) NOPASSWD:ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

CiaB 4.1

==For CiaB 5.0 user, please directly go to Ciab-5.0==

Download source code from cord github, and modify the property of the bash file.

1
2
3
4
curl -o ~/cord-bootstrap.sh https://raw.githubusercontent.com/opencord/cord/cord-4.1/scripts/cord-bootstrap.sh
chmod +x cord-bootstrap.sh

./cord-bootstrap -v

Problem

1
2
3
4
5
6
TASK [prereqs-common : Check here on failure: 'https://guide.opencord.org/troubleshooting.html#prereqs-common-failures'] *********************************************************************************************************************
Thursday 19 July 2018 10:36:08 +0800 (0:00:01.063) 0:00:01.113 *********
Pausing for 10 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: error: (25, 'Inappropriate ioctl for device')
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}

Due to the ansible version problem, we need to downgrade ansible version first.

1
2
3
sudo apt-get remove ansible -y
sudo pip install --upgrade pip setuptools
sudo pip install ansible==2.5.2

If you are having trouble when building CORD at the stage “lxc finished” in case of container connectivity problem.
Some campus network will not allow us to query the result of DNS, so that we need to modify the playbook.

1
vim ~/cord/build/maas/roles/maas/tasks/config-maas.yml

try to add dnssec_validation: ‘no’ into the file.

1
2
3
4
5
6
7
8
# ~/cord/build/maas/roles/maas/tasks/config-maas.yml
- name: Ensure Upstream DNS Server
maas:
key: '{{apikey.stdout}}'
maas: 'http://{{mgmt_ip_address.stdout}}/MAAS/api/1.0'
upstream_dns: '{{maas.upstream_dns}}'
dnssec_validation: 'no'
state: present

:::info
config-maas.yml defines tests/checks for the environment. Setting DNS check to false can avoid the error caused by the internet provider.
:::

Get OAI service

1
2
3
4
5
cd ~/
git clone https://gitlab.com/NickHoB/NTUST_OAI_CORD.git
cd ~/NTUST_OAI_CORD/
git checkout Ciab-4.1
./start.sh # Make all the custom configuration / VNF / synchronizer in to the cord

Build the service

1
2
3
cd ~/cord/build/;
make PODCONFIG=mcord-oai-virtual.yml;
make -j4 build

After successfully build the CORD, Check the password for XOS GUI

1
2
# check for xos password 
ssh head1 -qt "cat /opt/credentials/xosadmin@opencord.org"

And you can get into the web UI from {your_ip}:8080/xos
account :xosadmin@opencord.org
password has checked by the above command
Then you will see the following service graph.

Ciab-5.0

Download source code from cord github, and modify the property of the bash file.

1
2
3
4
curl -o ~/cord-bootstrap.sh https://raw.githubusercontent.com/opencord/cord/cord-5.0/scripts/cord-bootstrap.sh
chmod +x cord-bootstrap.sh

./cord-bootstrap -v

Problem

1
2
3
4
5
6
TASK [prereqs-common : Check here on failure: 'https://guide.opencord.org/troubleshooting.html#prereqs-common-failures'] *********************************************************************************************************************
Thursday 19 July 2018 10:36:08 +0800 (0:00:01.063) 0:00:01.113 *********
Pausing for 10 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: error: (25, 'Inappropriate ioctl for device')
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}

Due to the ansible version problem, we need to downgrade ansible version first.

1
2
3
sudo apt-get remove ansible -y
sudo pip install --upgrade pip setuptools
sudo pip install ansible==2.5.2

If you are having trouble when building CORD at the stage “lxc finished” in case of container connectivity problem.
Some campus network will not allow us to query the result of DNS, so that we need to modify the playbook.

1
vim ~/cord/build/maas/roles/maas/tasks/config-maas.yml

try to add dnssec_validation: ‘no’ into the file.

1
2
3
4
5
6
7
8
# ~/cord/build/maas/roles/maas/tasks/config-maas.yml
- name: Ensure Upstream DNS Server
maas:
key: '{{apikey.stdout}}'
maas: 'http://{{mgmt_ip_address.stdout}}/MAAS/api/1.0'
upstream_dns: '{{maas.upstream_dns}}'
dnssec_validation: 'no'
state: present

:::info
config-maas.yml defines tests/checks for the environment. Setting DNS check to false can avoid the error caused by the internet provider.
:::

Get OAI service

1
2
3
4
5
cd ~/
git clone https://gitlab.com/NickHoB/NTUST_OAI_CORD.git
cd ~/NTUST_OAI_CORD/
git checkout Ciab-5.0
./start.sh # Make all the custom configuration / VNF / synchronizer in to the cord

Build the service

1
2
3
cd ~/cord/build/;
make PODCONFIG=mcord-oai-virtual.yml;
make -j4 build

After successfully build the CORD, Check the password for XOS GUI

1
2
# check for xos password 
ssh head1 -qt "cat /opt/credentials/xosadmin@opencord.org"

And you can get into the web UI from {your_ip}:8080/xos
account :xosadmin@opencord.org
password has checked by the above command
Then you will see the following service graph.

Having trouble with no GUI after sucessfully deployed?

1
ps ax|grep 8080

copy the line related to ssh it will like:

1
9762 ?        S      0:00 ssh -o User=vagrant -o Port=22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ForwardX11=no -o IdentityFile="/home/cord/cord/build/scenarios/cord/.vagrant/machines/head1/libvirt/private_key" -L *:8080:192.168.121.157:80 -N 192.168.121.157

and then kill that process

1
sudo kill -9 <<process ID>>

open a new terminal and paste the command you have copied

1
ssh -o User=vagrant -o Port=22 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ForwardX11=no -o IdentityFile="/home/cord/cord/build/scenarios/cord/.vagrant/machines/head1/libvirt/private_key" -L *:8080:192.168.121.157:80 -N 192.168.121.157

Clean environment

If you want to re-install CORD or you want to clean all the configuration of M-CORD, try the following script.

1
2
cd ~/cord/build
make clean-all

Access Openstack Horizon

1
ssh -L 0.0.0.0:9999:10.1.0.11:80 head1

User name and password are in the head node

1
2
ssh head1 
cat /opt/cord_profile/admin-openrc.sh

General OAI service

1
2
3
4
5
6
7
8
9
10
11
vagrant@head1:~$ source /opt/cord_profile/admin-openrc.sh
vagrant@head1:~$ nova list --all-tenants
+--------------------------------------+-----------------+--------+------------+-------------+-------------------------------------------------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+-----------------+--------+------------+-------------+-------------------------------------------------------------------------+
| 63ed9b73-9600-4bc8-85a6-9627b9c450d4 | mysite_oaibbu-4 | ACTIVE | - | Running | management=172.27.0.7; public_network=10.8.1.4; oaibbu_network=10.0.4.3 |
| ee5c321b-f20b-4d2e-8c96-eed10de54a9a | mysite_vhss-3 | ACTIVE | - | Running | management=172.27.0.4; vhss_network=10.0.7.2 |
| 5962891c-9158-4951-8b1c-2bb5ab347350 | mysite_vmme-5 | ACTIVE | - | Running | management=172.27.0.6; vmme_network=10.0.6.2 |
| d0d70103-0e44-407f-9342-2346267defcd | mysite_vspgwc-1 | ACTIVE | - | Running | management=172.27.0.2; vspgwc_network=10.0.8.2 |
| 2b82422f-434b-44c0-9c8b-2265e22a6475 | mysite_vspgwu-2 | ACTIVE | - | Running | management=172.27.0.3; public_network=10.8.1.2; vspgwu_network=10.0.9.2 |
+--------------------------------------+-----------------+--------+------------+-------------+-------------------------------------------------------------------------+